﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocios;
using publico;
using objetos;

namespace softsales.pagina.tributacao_icms
{
    public partial class tributacao_icms_formulario : System.Web.UI.Page
    {
        BLL_TB_TRIBUTACAO_ICMS b_tb_tributacao_icms = new BLL_TB_TRIBUTACAO_ICMS();
        OBJ_TB_TRIBUTACAO_ICMS o_tb_tributacao_icms = new OBJ_TB_TRIBUTACAO_ICMS();

        BLL_TB_IMPOSTO_CST_ICMS b_tb_imposto_cst_icms = new BLL_TB_IMPOSTO_CST_ICMS();
        BLL_TB_IMPOSTO_CSOSN b_tb_imposto_csosn = new BLL_TB_IMPOSTO_CSOSN();
        BLL_TB_MODALIDADE_BC_ICMS b_tb_modalidade_bc_icms = new BLL_TB_MODALIDADE_BC_ICMS();
        BLL_TB_MODALIDADE_BC_ICMS_ST b_tb_modalidade_bc_icms_st = new BLL_TB_MODALIDADE_BC_ICMS_ST();
        BLL_TB_DESONERACAO_ICMS b_tb_desoneracao_icms = new BLL_TB_DESONERACAO_ICMS();
        BLL_TB_UF b_tb_uf = new BLL_TB_UF();

        BLL_TB_LOG_ERRO b_tb_log_erro = new BLL_TB_LOG_ERRO();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {
                if (!IsPostBack)
                {
                    b_tb_imposto_cst_icms.PreencheControle(DDL_ID_CST_ICMS, true);
                    b_tb_imposto_csosn.PreencheControle(DDL_ID_CSOSN, true);
                    b_tb_modalidade_bc_icms.PreencheControle(DDL_ID_MOD_BC_ICMS, true);
                    b_tb_modalidade_bc_icms_st.PreencheControle(DDL_ID_MOD_BC_ICMS_ST, true);
                    b_tb_desoneracao_icms.PreencheControle(DDL_ID_MOT_DESONERACAO_ICMS, true);
                    b_tb_uf.PreencheControle(DDL_ID_UF, true);


                    if (Request["id"] != null)
                    {
                        LBL_TITULO_PAGINA.Text = "Editar Tributação ICMS";
                        if (PUB_FUNCOES.ApenasNumero(Request["id"].ToString()))
                        {
                            Editar(Request["id"].ToString());
                        }
                    }
                    else
                    {
                        LBL_TITULO_PAGINA.Text = "Incluir Tributação ICMS";
                    }

                }
            }
        }

        private void Editar(string id)
        {
            try
            {
                o_tb_tributacao_icms = b_tb_tributacao_icms.SelecionarObjetoPorId(Convert.ToInt32(id));
                HF_ID.Value = id;

                TXT_DESC_IMPOSTO_ICMS.Text = o_tb_tributacao_icms.desc_imposto_icms.ToString();
                DDL_ID_CSOSN.SelectedValue = o_tb_tributacao_icms.id_csosn.ToString();
                DDL_ID_CST_ICMS.SelectedValue = o_tb_tributacao_icms.id_cst_icms.ToString();
                DDL_ID_MOD_BC_ICMS.SelectedValue = o_tb_tributacao_icms.id_mod_bc_icms.ToString();
                DDL_ID_MOD_BC_ICMS_ST.SelectedValue = o_tb_tributacao_icms.id_mod_bc_icms_st.ToString();
                DDL_ID_MOT_DESONERACAO_ICMS.SelectedValue = o_tb_tributacao_icms.id_mot_desoneracao_icms.ToString();
                DDL_ID_UF.SelectedValue = o_tb_tributacao_icms.id_uf.ToString();
                CHK_SIT_SOMA_IPI_BC_ICMS.Checked = o_tb_tributacao_icms.sit_soma_ipi_bc_icms;
                CHK_SIT_SOMA_IPI_BC_ICMS_ST.Checked = o_tb_tributacao_icms.sit_soma_ipi_bc_icms_st;

                TXT_VALOR_ALIQ_BC_OP_PROPRIA.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_aliq_bc_op_propria.ToString());
                TXT_VALOR_ALIQ_CRED_SN.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_aliq_cred_sn.ToString());
                TXT_VALOR_ALIQ_ICMS.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_aliq_icms.ToString());
                TXT_VALOR_ALIQ_ICMS_MVA_ST.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_aliq_icms_mva_st.ToString());
                TXT_VALOR_ALIQ_ICMS_ST.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_aliq_icms_st.ToString());
                TXT_VALOR_ALIQ_RED_BC_ICMS.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_aliq_red_bc_icms.ToString());
                TXT_VALOR_ALIQ_RED_BC_ICMS_ST.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_aliq_red_bc_icms_st.ToString());
                TXT_VALOR_CRED_ICMS_SN.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_cred_icms_sn.ToString());
                TXT_VALOR_ICMS_ST_DEST.Text = PUB_FUNCOES.FormataNumerico(o_tb_tributacao_icms.valor_icms_st_dest.ToString());
                TXT_VALOR_ICMS_ST_RET.Text =PUB_FUNCOES.FormataNumerico( o_tb_tributacao_icms.valor_icms_st_ret.ToString());

            }
            catch (Exception)
            {

                throw;
            }

        }

        protected void BTN_SALVAR_Click(object sender, EventArgs e)
        {
            try
            {
                string msg = string.Empty;
                o_tb_tributacao_icms.desc_imposto_icms = TXT_DESC_IMPOSTO_ICMS.Text;

                if(DDL_ID_CSOSN.SelectedValue != string.Empty)
                    o_tb_tributacao_icms.id_csosn = Convert.ToInt32(DDL_ID_CSOSN.SelectedValue);

                if(DDL_ID_CST_ICMS.SelectedValue != string.Empty)
                    o_tb_tributacao_icms.id_cst_icms = DDL_ID_CST_ICMS.SelectedValue;

                if(DDL_ID_MOD_BC_ICMS.SelectedValue != string.Empty)
                    o_tb_tributacao_icms.id_mod_bc_icms = Convert.ToInt32(DDL_ID_MOD_BC_ICMS.SelectedValue);

                if(DDL_ID_MOD_BC_ICMS_ST.SelectedValue != string.Empty)
                    o_tb_tributacao_icms.id_mod_bc_icms_st =  Convert.ToInt32(DDL_ID_MOD_BC_ICMS_ST.SelectedValue);

                if (DDL_ID_MOT_DESONERACAO_ICMS.SelectedValue != string.Empty)
                    o_tb_tributacao_icms.id_mot_desoneracao_icms = Convert.ToInt32(DDL_ID_MOT_DESONERACAO_ICMS.SelectedValue);

                if (DDL_ID_UF.SelectedValue != string.Empty)
                    o_tb_tributacao_icms.id_uf = Convert.ToInt32(DDL_ID_UF.SelectedValue);

                o_tb_tributacao_icms.sit_soma_ipi_bc_icms = Convert.ToBoolean(CHK_SIT_SOMA_IPI_BC_ICMS.Checked);

                o_tb_tributacao_icms.sit_soma_ipi_bc_icms_st = Convert.ToBoolean(CHK_SIT_SOMA_IPI_BC_ICMS_ST.Checked);

                o_tb_tributacao_icms.valor_aliq_bc_op_propria = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ALIQ_BC_OP_PROPRIA.Text));
                o_tb_tributacao_icms.valor_aliq_cred_sn = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ALIQ_CRED_SN.Text));
                o_tb_tributacao_icms.valor_aliq_icms = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ALIQ_ICMS.Text));
                o_tb_tributacao_icms.valor_aliq_icms_mva_st = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ALIQ_ICMS_MVA_ST.Text));
                o_tb_tributacao_icms.valor_aliq_icms_st = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ALIQ_ICMS_ST.Text));
                o_tb_tributacao_icms.valor_aliq_red_bc_icms = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ALIQ_RED_BC_ICMS.Text));
                o_tb_tributacao_icms.valor_aliq_red_bc_icms_st = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ALIQ_RED_BC_ICMS_ST.Text));
                o_tb_tributacao_icms.valor_cred_icms_sn = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_CRED_ICMS_SN.Text));
                o_tb_tributacao_icms.valor_icms_st_dest = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ICMS_ST_DEST.Text));
                o_tb_tributacao_icms.valor_icms_st_ret = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_ICMS_ST_RET.Text));

                if (HF_ID.Value != string.Empty)
                {
                    o_tb_tributacao_icms.id = Convert.ToInt32(HF_ID.Value);
                    b_tb_tributacao_icms.Alterar(o_tb_tributacao_icms);

                    msg = PUB_MENSAGEM.MSG_ALTERACAO;
                }
                else
                {
                    b_tb_tributacao_icms.Incluir(o_tb_tributacao_icms);
                    msg = PUB_MENSAGEM.MSG_INCLUSAO;
                }

                Master.MSG_ALERTA(msg, "default.aspx", false);

            }
            catch (Exception)
            {

                throw;
            }
        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            Response.Redirect("default.aspx", false);
        }

     
    }
}